home *** CD-ROM | disk | FTP | other *** search
- NOTEWORTHY CHANGES IN GNU MP IN VERSION 2
-
- * Division routines in the mpz class have changed. There are three classes of
- functions, that rounds the quotient to -infinity, 0, and +infinity,
- respectively. The first class of functions have names that begin with
- mpz_fdiv (f is short for floor), the second class' names begin with mpz_tdiv
- (t is short for trunc), and the third class' names begin with mpz_cdiv (c is
- short for ceil).
-
- The old division routines beginning with mpz_m are similar to the new
- mpz_fdiv, with the exception that some of the new functions return useful
- values.
-
- The old function names can still be used. All the old functions names will
- now do floor division, not trunc division as some of them used to. This was
- changed to make the functions more compatible with common mathematical
- practice.
-
- The mpz_mod and mpz_mod_ui functions now compute the mathematical mod
- function. I.e., the sign of the 2nd argument is ignored.
-
- * The mpq assignment functions do not canonicalize their results. A new
- function, mpq_canonicalize must be called by the user if the result is not
- known to be canonical.
- * The mpn functions are now documented. These functions are intended for
- very time critical applications, or applications that need full control over
- memory allocation. Note that the mpn interface is irregular and hard to
- use.
- * New functions for arbitrary precision floating point arithmetic. Names
- begin with `mpf_'. Associated type mpf_t.
- * New and improved mpz functions, including much faster GCD, fast exact
- division (mpz_divexact), bit scan (mpz_scan0 and mpz_scan1), and number
- theoretical functions like Jacobi (mpz_jacobi) and multiplicative inverse
- (mpz_invert).
- * New variable types (mpz_t and mpq_t) are available that makes syntax of
- mpz and mpq calls nicer (no need for & before variables). The MP_INT and
- MP_RAT types are still available for compatibility.
- * Uses GNU configure. This makes it possible to choose target architecture
- and CPU variant, and to compile into a separate object directory.
- * Carefully optimized assembly for important inner loops. Support for DEC
- Alpha, Amd 29000, HPPA 1.0 and 1.1, Intel pentium and generic x86, Intel
- i960, Motorola MC68000, MC68020, MC88100, and MC88110, Motorola/IBM
- PowerPC, National NS32000, IBM POWER, MIPS R3000, R4000, SPARCv7,
- SuperSPARC, generic SPARCv8, and DEC VAX. Some support also for ARM,
- Clipper, IBM ROMP (RT), and Pyramid AP/XP.
- * Faster. Thanks to the assembler code, new algorithms, and general tuning.
- In particular, the speed on machines without GCC is improved.
- * Support for machines without alloca.
- * Now under the LGPL.
-
- INCOMPATIBILITIES BETWEEN GMP 1 AND GMP 2
-
- * mpq assignment functions do not canonicalize their results.
- * mpz division functions round differently.
- * mpz mod functions now really compute mod.
- * mpz_powm and mpz_powm_ui now really use mod for reduction.
-